package com.jeequan.jeepay.core.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jeequan.jeepay.core.model.BaseModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.*;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

 /**
 * 代付订单;
 * @author : wondream322@gmail.com
 * @date : 2023-8-19
 */
@ApiModel(value = "代付订单",description = "")
@TableName("payment_api_order")
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ToString
@NoArgsConstructor
@AllArgsConstructor
public class PaymentApiOrder extends BaseModel implements Serializable,Cloneable{
    
     //gw
     public static final LambdaQueryWrapper<PayMemberDO> gw(){
         return new LambdaQueryWrapper<>();
     }
     
    /**  */
    @ApiModelProperty(value = "",name = "",notes = "")
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id ;
    /** 用户ID */
    @ApiModelProperty(value = "用户ID",name = "用户ID",notes = "")
    private Integer memberId ;
    /** 订单id */
    @ApiModelProperty(value = "订单id",name = "订单id",notes = "")
    private String orderId ;
    /** 商户订单号 */
    @ApiModelProperty(value = "商户订单号",name = "商户订单号",notes = "")
    private String outTradeNo ;
    /** 货币类型 */
    @ApiModelProperty(value = "货币类型",name = "货币类型",notes = "")
    private Integer balanceType ;
    /** ₹ Rp等 */
    @ApiModelProperty(value = "₹ Rp等",name = "₹ Rp等",notes = "")
    private String balanceSymbol ;
    /** 代付回调通知地址 */
    @ApiModelProperty(value = "代付回调通知地址",name = "代付回调通知地址",notes = "")
    private String notifyUrl ;
    /** 提现金额 */
    @ApiModelProperty(value = "提现金额",name = "提现金额",notes = "")
    private BigDecimal amount ;
    /** 银行卡号 */
    @ApiModelProperty(value = "银行卡号",name = "银行卡号",notes = "")
    private String bankCardNo ;
    /** 户名 */
    @ApiModelProperty(value = "户名",name = "户名",notes = "")
    private String bankAccount ;
    /** 银行编码 */
    @ApiModelProperty(value = "银行编码",name = "银行编码",notes = "")
    private String bankCode ;
    /** 印度支付必填(11位，第五位为0) */
    @ApiModelProperty(value = "印度支付必填(11位，第五位为0)",name = "印度支付必填(11位，第五位为0)",notes = "")
    private String ifsc ;
    /** 手机号 */
    @ApiModelProperty(value = "手机号",name = "手机号",notes = "")
    private String mobile ;
    /** 邮箱 */
    @ApiModelProperty(value = "邮箱",name = "邮箱",notes = "")
    private String email ;
    /** 额外的参数 */
    @ApiModelProperty(value = "额外的参数",name = "额外的参数",notes = "")
    private String extend;
    /** 代付ID */
    @ApiModelProperty(value = "代付ID",name = "代付ID",notes = "")
    private Integer dfId ;
    /** 代付API扣除手续费方式，0：从到账金额里扣，1：从商户余额里扣 */
    @ApiModelProperty(value = "代付API扣除手续费方式，0：从到账金额里扣，1：从商户余额里扣",name = "代付API扣除手续费方式，0：从到账金额里扣，1：从商户余额里扣",notes = "")
    private Integer dfChargeType ;
    /** 0：待审核 1：已提交后台审核 2：审核驳回 */
    @ApiModelProperty(value = "0：待审核 1：已提交后台审核 2：审核驳回",name = "0：待审核 1：已提交后台审核 2：审核驳回",notes = "")
    private Integer checkStatus ;
    /** 驳回原因 */
    @ApiModelProperty(value = "驳回原因",name = "驳回原因",notes = "")
    private String rejectReason ;
    /** 审核时间 */
    @ApiModelProperty(value = "审核时间",name = "审核时间",notes = "")
    private Date checkTime ;
    /** 备注 */
    @ApiModelProperty(value = "备注",name = "备注",notes = "")
    private String remark ;
    /** 0-未处理 1-处理中 2-已打款 3-已驳回 4-打款失败 */
    @ApiModelProperty(value = "0-未处理 1-处理中 2-已打款 3-已驳回 4-打款失败",name = "0-未处理 1-处理中 2-已打款 3-已驳回 4-打款失败",notes = "")
    private Integer state ;
    /** 创建时间 */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @ApiModelProperty(value = "创建时间",name = "创建时间",notes = "")
    private Date createTime ;
    /** 更新时间 */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @ApiModelProperty(value = "更新时间",name = "更新时间",notes = "")
    private Date updateTime ;

}